Repository navigation
0.11.0: prompt version 9, the peak diagnosis and a sealed holdout - #12
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
0.11.0: close the peak gap and August ramping between the 0.10.0 live agent and its strategy, and set up a clean holdout before any tuning. The envelope is unchanged from 0.10.0. No live model calls were made; everything is measured on recorded runs and offline controllers.
Holdout, chosen and sealed first (
HOLDOUT.md, its own commit before any tuning)CityLearn v3.0.2 ships no dataset that is both new to this project and fully compatible with it: every 2023 set reuses the phase 2 or tuning data (phase 3's Buildings 1 to 3, weather, tariff and carbon are the tuning months value for value), and every other dataset has other actions or observations. The closest option, proposed as such: Buildings 4, 5 and 6 of
citylearn_challenge_2023_phase_3_1, June, July and August (holdout-06/07/08). The buildings, LSTM models, batteries and heat pumps are new; the weather, tariff and carbon are the tuning months'.hyperbolic monthsandcomparerefuse it without--holdout-final, the files are checked against a seal of hashes, and only the baseline was run on it (load check).Acceptance rule, committed before any v9 result: on the four-month mean, v9 scripted must lower the all-time peak and ramping against v8 scripted, stay within 0.001 on cost, emissions, discomfort and too warm, and not raise outage energy.
Peak diagnosis (
scripts/analyze_peaks.py, four 0.10.0 live months, each class put back to the strategy through the unchanged envelope; control replays reproduce the published KPIs exactly)nullwith the trim state off.August ramping split (points above 1.0): scripted v8 +1.00 (mostly trim ends, +3.91, which the envelope fixes), Haiku +1.57. Strategy 1.00, agent +0.57 (battery +1.25, less 0.69 from trims it did not start).
Search and result (
scripts/tune_strategy.py --version 9, four months, the rule as written)evening_reserve0.01. v9 passes the acceptance rule: all-time peak 0.8768 against 0.8797, ramping 0.9857 against 0.9873, cost +0.0006, emissions +0.00002, discomfort, too warm and outage energy unchanged.Prompt version 9 (default): the v9 strategy,
peak.shave_now, "send every number exactly" (a -0.033 shave is not 0, cooling under baseline is not null with the trim off), shave whenevershave_now, after the top price and on flat days too. Version 8 stays selectable and byte for byte.Estimates, four-month mean, no holdout (scripted rows are not model results)
Request size and cost: v9 requests average 9,716 characters against 9,456 for v8 (2.8 percent larger). A Haiku month should cost about $0.42 to $0.44 (worst case $0.96 to $0.99, under the $2.00 cap).
hyperbolic/envelope.pyis byte for byte 0.10.0's. The four 0.10.0, the 0.9.0 and the 0.8.0 live months replay every hour with 0 API calls.Tests: 319 passed locally (CI skips the 6 that need the live runs kept in
runs/). Repo checks passed.